<?php
class InstituicaoDAO{

	private static $instaciaUnica;
	private $conexao;

	private function __construct(){
		$this->conexao = Conexao::getConexao();
	}

	public static function getInstancia(){
		if(!isset(self::$instaciaUnica)){
			self::$instaciaUnica = new InstituicaoDAO();
		}
		return self::$instaciaUnica;
	}

	public function listaInstituicao(){
		$lista	=	Array();
		$rs		=	new QueryMySql();
		$rs->setQuery("Select * From tbl_instituicao");
		while ($rs->getrow()){
			$inttituicao = new Instituicao();
			$inttituicao->setCodInstituicao($rs->field("codInstituicao"));
			$inttituicao->setNomeInstituicao($rs->field("nomeInstituicao"));
			$inttituicao->setSigla($rs->field("sigla"));
			$inttituicao->setEndereco($rs->field("endereco"));
			$inttituicao->setCnpj($rs->field("cnpj"));
			$inttituicao->setTipoInstituicao($rs->field("tipoInstituicao"));
			$inttituicao->setTelUm($rs->field("telUm"));
			$inttituicao->setTelDois($rs->field("telDois"));
			$inttituicao->setCidade($rs->field("cidade"));
			$inttituicao->setBairro($rs->field("bairro"));
			$inttituicao->setCep($rs->field("cep"));
			$inttituicao->setUf($rs->field("uf"));
			$inttituicao->setEmail($rs->field("email"));
			$lista[] = $inttituicao;
		}
		return $lista;
	}

	public function insertInstituicao(Instituicao $instituicao){
		$sql 		= new UpdateSQL();
		$sql->setTable("tbl_instituicao");
		$sql->addField("nomeInstituicao", $instituicao->getNomeInstituicao(),"String");
		$sql->addField("sigla", $instituicao->getSigla(),"String");
		$sql->addField("endereco", $instituicao->getEndereco(),"String");
		$sql->addField("cidade", $instituicao->getCidade(),"String");
		$sql->addField("bairro", $instituicao->getBairro(),"String");
		$sql->addField("cep", $instituicao->getCep(),"String");
		$sql->addField("uf", $instituicao->getUf(),"String");
		$sql->addField("cnpj", $instituicao->getCnpj(),"String");
		$sql->addField("tipoInstituicao", $instituicao->getTipoInstituicao(),"String");
		$sql->addField("telUm", $instituicao->getTelUm(),"String");
		$sql->addField("telDois", $instituicao->getTelDois(),"String");
		$sql->addField("email", $instituicao->getEmail(),"String");
		
		$sql->setAction("INSERT");
		return $this->conexao->execute($sql->getSQL());
	}

	public function updateInstituicao(Instituicao $instituicao){
		//$instituicao = new Instituicao();
		$sql 		= new UpdateSQL();
		$sql->setTable("tbl_instituicao");
		$sql->setKey("codInstituicao", $instituicao->getCodInstituicao(), "Number");
		$sql->addField("nomeInstituicao", $instituicao->getNomeInstituicao(), "String");
		$sql->addField("sigla", $instituicao->getSigla(), "String");
		$sql->addField("endereco", $instituicao->getEndereco(),"String");
		$sql->addField("cidade", $instituicao->getCidade(),"String");
		$sql->addField("bairro", $instituicao->getBairro(),"String");
		$sql->addField("cep", $instituicao->getCep(),"String");
		$sql->addField("uf", $instituicao->getUf(),"String");
		$sql->addField("cnpj", $instituicao->getCnpj(),"String");
		$sql->addField("tipoInstituicao", $instituicao->getTipoInstituicao(),"String");
		$sql->addField("telUm", $instituicao->getTelUm(),"String");
		$sql->addField("telDois", $instituicao->getTelDois(),"String");
		$sql->addField("email", $instituicao->getEmail(),"String");
		
		$sql->setAction("UPDATE");
		return $this->conexao->execute($sql->getSQL());
	}

	public function deleteInstituicao(Instituicao $instituicao){
		//$instituicao = new Instituicao();
		$sql = new UpdateSQL();
		$sql->setTable("tbl_instituicao");
		$sql->setKey("codInstituicao", $instituicao->getCodInstituicao(), "Number");
		$sql->setAction("DELETE");
		return $this->conexao->executeUpdate($sql->getSQL());
	}
}
?>